var g_gmpLibJsLoaded=false; function gmpLoadGoogleLib(){ if(!g_gmpLibJsLoaded){ jQuery('head').append(''); g_gmpLibJsLoaded=true; }} function gmpGoogleMap(elementId, params, additionalData){ if(typeof(google)==='undefined'){ gmpLoadGoogleLib(); } params=params ? params:{}; additionalData=additionalData ? additionalData:{}; var defaults={ center: new google.maps.LatLng(40.69847032728747, -73.9514422416687) , zoom: 8 }; if(params.map_center&¶ms.map_center.coord_x&¶ms.map_center.coord_y){ params.center=new google.maps.LatLng(params.map_center.coord_x, params.map_center.coord_y); } if(params.zoom){ params.zoom=parseInt(params.zoom); } if(!GMP_DATA.isAdmin&¶ms.zoom_type=='zoom_level'&¶ms.zoom_mobile&&jQuery(document).width() < 768){ params.zoom=parseInt(params.zoom_mobile); } if(typeof(elementId)==='string'){ elementId=jQuery(elementId)[0]; } this._elementId=elementId; this._mapParams=jQuery.extend({}, defaults, params); this._mapObj=null; this._markers=[]; this._shapes=[]; this._heatmap=[]; this._clasterer=null; this._clastererEnabled=false; this._clastererMarkersGroupsStyles=[]; this._eventListeners={}; this._layers={}; this.mapMarkersGroups=additionalData.markerGroups ? additionalData.markerGroups:[]; this.init(); } gmpGoogleMap.prototype.init=function(){ this._beforeInit(); this._mapObj=new google.maps.Map(this._elementId, this._mapParams); this._afterInit(); }; gmpGoogleMap.prototype._beforeInit=function(){ if(typeof(this._mapParams.type_control)!=='undefined'){ if(typeof(google.maps.MapTypeControlStyle[ this._mapParams.type_control ])!=='undefined'){ this._mapParams.mapTypeControlOptions={ style: google.maps.MapTypeControlStyle[ this._mapParams.type_control ] }; this._mapParams.mapTypeControl=true; }else{ this._mapParams.mapTypeControl=false; }} if(typeof(this._mapParams.zoom_control)!=='undefined'){ if(typeof(google.maps.ZoomControlStyle[ this._mapParams.zoom_control ])!=='undefined'){ this._mapParams.zoomControlOptions={ style: google.maps.ZoomControlStyle[ this._mapParams.zoom_control ] }; this._mapParams.zoomControl=true; }else{ this._mapParams.zoomControl=false; }} if(typeof(this._mapParams.street_view_control)!=='undefined'){ this._mapParams.streetViewControl=parseInt(this._mapParams.street_view_control) ? true:false; } if(typeof(this._mapParams.pan_control)!=='undefined'){ this._mapParams.panControl=parseInt(this._mapParams.pan_control) ? true:false; } if(typeof(this._mapParams.overview_control)!=='undefined'){ if(this._mapParams.overview_control!=='none'){ this._mapParams.overviewMapControlOptions={ opened: this._mapParams.overview_control==='opened' ? true:false }; this._mapParams.overviewMapControl=true; }else{ this._mapParams.overviewMapControl=false; }} if(typeof(this._mapParams.dbl_click_zoom)!=='undefined'){ this._mapParams.disableDoubleClickZoom=parseInt(this._mapParams.dbl_click_zoom) ? false:true; } if(typeof(this._mapParams.mouse_wheel_zoom)!=='undefined'){ this._mapParams.scrollwheel=parseInt(this._mapParams.mouse_wheel_zoom) ? true:false; } if(typeof(this._mapParams.map_type)!=='undefined' && typeof(google.maps.MapTypeId[ this._mapParams.map_type ])!=='undefined' ){ this._mapParams.mapTypeId=google.maps.MapTypeId[ this._mapParams.map_type ]; } if(typeof(this._mapParams.map_stylization_data)!=='undefined' && this._mapParams.map_stylization_data ){ this._mapParams.styles=this._mapParams.map_stylization_data; } jQuery(document).trigger('gmapBeforeMapInit', this); }; gmpGoogleMap.prototype.getParams=function(){ return this._mapParams; }; gmpGoogleMap.prototype.getParam=function(key){ return this._mapParams[ key ]; }; gmpGoogleMap.prototype.setParam=function(key, value){ this._mapParams[ key ]=value; return this; }; gmpGoogleMap.prototype._afterInit=function(){ if(typeof(this._mapParams.marker_clasterer)!=='undefined'&&this._mapParams.marker_clasterer){ this.enableClasterization(this._mapParams.marker_clasterer); } this.applyZoomType(); if(typeof(this._mapParams.zoom_min)!=='undefined'&&typeof(this._mapParams.zoom_max)!=='undefined'){ this._setMinZoomLevel(); this._setMaxZoomLevel(); this._fixZoomLevel(); } this.resizeMapByHeight(); jQuery(window).bind('resize', jQuery.proxy(this.resizeMapByHeight, this)); jQuery(window).bind('orientationchange', jQuery.proxy(this.resizeMapByHeight, this)); jQuery(document).trigger('gmapAfterMapInit', this); }; gmpGoogleMap.prototype._setMinZoomLevel=function(){ var curZoom=this.getZoom(); var minZoom=parseInt(this._mapParams.zoom_min) ? parseInt(this._mapParams.zoom_min):null; this.getRawMapInstance().setOptions({minZoom: minZoom}); if(curZoom < minZoom) this.getRawMapInstance().setOptions({zoom: minZoom}); }; gmpGoogleMap.prototype._setMaxZoomLevel=function(){ var maxZoom=parseInt(this._mapParams.zoom_max) ? parseInt(this._mapParams.zoom_max):null; this.getRawMapInstance().setOptions({maxZoom: maxZoom}); if(this.getRawMapInstance().zoom > maxZoom) this.getRawMapInstance().setOptions({zoom: maxZoom}); }; gmpGoogleMap.prototype._fixZoomLevel=function(){ var eventHandle=this._getEventListenerHandle('zoom_changed', 'zoomChanged'); if(!eventHandle){ eventHandle=google.maps.event.addListener(this.getRawMapInstance(), 'zoom_changed', jQuery.proxy(function(){ var minZoom=parseInt(this.getParam('zoom_min')) , maxZoom=parseInt(this.getParam('zoom_max')); if(this.getZoom() < minZoom){ this.setZoom(minZoom); if(GMP_DATA.isAdmin&&this._getEventListenerHandle('idle', 'enableClasterization')) google.maps.event.trigger(this.getRawMapInstance(), 'idle'); } if(this.getZoom() > maxZoom){ this.setZoom(maxZoom); if(GMP_DATA.isAdmin&&this._getEventListenerHandle('idle', 'enableClasterization')) google.maps.event.trigger(this.getRawMapInstance(), 'idle'); }}, this)); this._addEventListenerHandle('zoom_changed', 'zoomChanged', eventHandle); }}; gmpGoogleMap.prototype.enableClasterization=function(clasterType, needTrigger){ needTrigger=needTrigger ? needTrigger:false; switch(clasterType){ case 'MarkerClusterer': var self=this; self.setClastererMarkersGroupsStyles(); var eventHandle=google.maps.event.addListenerOnce(self.getRawMapInstance(), 'idle', function(a, b, c){ var clasterGridSize=self.getParam('marker_clasterer_grid_size') , markerGroupsStyles=self.getClastererMarkersGroupsStyles(); var allMapMarkers=self.getAllRawMarkers() , allVisibleMapMarkers=[] , clasterer=self.getClasterer(); for(var i=0; i < allMapMarkers.length; i++){ if(allMapMarkers[i].getVisible()&&!parseInt(allMapMarkers[i].params.clasterer_exclude)){ allVisibleMapMarkers.push(allMapMarkers[i]); }} if(clasterer){ clasterer.clearMarkers(); clasterer.addMarkers(allVisibleMapMarkers); clasterer.setStyles(markerGroupsStyles); self.setClastererGridSize(clasterGridSize); clasterer.resetViewport(); clasterer.redraw(); }else{ clasterer=new MarkerClusterer(self.getRawMapInstance(), allVisibleMapMarkers, { styles: markerGroupsStyles, clusterClass: "cluster" }); clasterer.setCalculator(self.customClastererCalculatorFunction(markerGroupsStyles)); self.setClasterer(clasterer); self.setClastererGridSize(clasterGridSize); clasterer=self.getClasterer(); }}); this._addEventListenerHandle('idle', 'enableClasterization', eventHandle); if(GMP_DATA.isAdmin||needTrigger){ google.maps.event.trigger(self.getRawMapInstance(), 'idle'); } this._clastererEnabled=true; break; }}; gmpGoogleMap.prototype.disableClasterization=function(){ var eventHandle=this._getEventListenerHandle('idle', 'enableClasterization'); if(eventHandle){ var clasterer=this.getClasterer(); if(clasterer){ clasterer.clearMarkers(); var markers=this.getAllRawMarkers(); for(var i=0; i < markers.length; i++){ markers[i].setMap(this.getRawMapInstance()); }} google.maps.event.removeListener(eventHandle); google.maps.event.trigger(this.getRawMapInstance(), 'idle'); this._clastererEnabled=false; }}; gmpGoogleMap.prototype.customClastererCalculatorFunction=function(markerGroupsStyles){ return function(markers, numStyles){ var styleIndex=1, markersGroupsStyles=markerGroupsStyles, markersGroupsIds={}, maxCount=0, groupId=0, curStyle=[]; for (var i=0; i < markers.length; i++){ if(markers[i].marker_group_id){ if(typeof(markersGroupsIds[markers[i].marker_group_id])=='undefined'){ markersGroupsIds[markers[i].marker_group_id]=1; }else{ markersGroupsIds[markers[i].marker_group_id]++; }} } for (var currGroupId in markersGroupsIds){ if(markersGroupsIds[currGroupId] > maxCount){ maxCount=markersGroupsIds[currGroupId]; groupId=currGroupId; }} curStyle=jQuery.grep(markersGroupsStyles, function (e, i){ if(e.marker_group_id==groupId){ return e; }}); if(curStyle&&curStyle[0]) styleIndex=markersGroupsStyles.indexOf(curStyle[0]) + 1; return { text: markers.length, index: styleIndex };}}; gmpGoogleMap.prototype.getClasterer=function(){ if(this._clasterer){ return this._clasterer; } return false; }; gmpGoogleMap.prototype.setClasterer=function(clasterer){ this._clasterer=clasterer; }; gmpGoogleMap.prototype.setMapMarkersGroups=function(groups){ this.mapMarkersGroups=groups; }; gmpGoogleMap.prototype.getMapMarkersGroups=function(){ return this.mapMarkersGroups; }; gmpGoogleMap.prototype.setClastererMarkersGroupsStyles=function(){ var mapMarkersGroups=this.getMapMarkersGroups() , markersGroupsStyles=this.getClastererMarkersGroupsStyles() , defClasterIcon=GMP_DATA.modPath + 'gmap/img/m1.png' , oldDefClasterIcon='https://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/images/m1.png' // Prevent to use old default claster icon cdn icon because it is missing , clasterIcon=this.getParam('marker_clasterer_icon') , iconWidth=this.getParam('marker_clasterer_icon_width') , iconHeight=this.getParam('marker_clasterer_icon_height'); clasterIcon=clasterIcon&&clasterIcon!=oldDefClasterIcon ? clasterIcon:defClasterIcon; iconWidth=iconWidth ? iconWidth:53; iconHeight=iconHeight ? iconHeight:52; markersGroupsStyles.push({ marker_group_id: 0 , url: clasterIcon , width: iconWidth , height: iconHeight }); if(mapMarkersGroups){ for(var i=0; i < mapMarkersGroups.length; i++){ var markerGroupId=mapMarkersGroups[i].id , markerGroupClasterIcon=mapMarkersGroups[i].params.claster_icon , markerGroupClasterIconWidth=mapMarkersGroups[i].params.claster_icon_width , markerGroupClasterIconHeight=mapMarkersGroups[i].params.claster_icon_height; if(markerGroupClasterIcon&&markerGroupClasterIcon!=clasterIcon){ markersGroupsStyles.push({ marker_group_id: markerGroupId , url: markerGroupClasterIcon ? markerGroupClasterIcon:defClasterIcon , width: markerGroupClasterIconWidth ? markerGroupClasterIconWidth:53 , height: markerGroupClasterIconHeight ? markerGroupClasterIconHeight:52 , className: "cluster", }); }} }}; gmpGoogleMap.prototype.getClastererMarkersGroupsStyles=function(){ return this._clastererMarkersGroupsStyles; }; gmpGoogleMap.prototype.setClastererGridSize=function(size){ var clasterer=this.getClasterer(); size=size&&parseInt(size) ? parseInt(size):null; if(clasterer&&size){ clasterer.setGridSize(size); }}; gmpGoogleMap.prototype.getClastererGridSize=function(){ var clasterer=this.getClasterer() , clusterGridSize=null; if(clasterer){ clusterGridSize=clasterer.getGridSize(); } return clusterGridSize; }; gmpGoogleMap.prototype.markersRefresh=function(){ var clasterer=this.getClasterer(); if(this._clastererEnabled&&clasterer){ clasterer.clearMarkers(); clasterer.addMarkers(this.getAllRawMarkers()); } jQuery(document).trigger('gmapAfterMarkersRefresh', this); }; gmpGoogleMap.prototype._addEventListenerHandle=function(event, code, handle){ if(!this._eventListeners[ event ]) this._eventListeners[ event ]={}; this._eventListeners[ event ][ code ]=handle; }; gmpGoogleMap.prototype._getEventListenerHandle=function(event, code){ return this._eventListeners[ event ]&&this._eventListeners[ event ][ code ] ? this._eventListeners[ event ][ code ] : false; }; gmpGoogleMap.prototype.getRawMapInstance=function(){ return this._mapObj; }; gmpGoogleMap.prototype.setCenter=function (lat, lng){ if(typeof lng=='undefined'){ this.getRawMapInstance().setCenter(lat); }else this.getRawMapInstance().setCenter(new google.maps.LatLng(lat, lng)); return this; }; gmpGoogleMap.prototype.getCenter=function (){ return this.getRawMapInstance().getCenter(); }; gmpGoogleMap.prototype.setZoom=function (zoomLevel){ this.getRawMapInstance().setZoom(parseInt(zoomLevel)); }; gmpGoogleMap.prototype.getZoom=function (){ return this.getRawMapInstance().getZoom(); }; gmpGoogleMap.prototype.getBounds=function (){ return this.getRawMapInstance().getBounds(); }; gmpGoogleMap.prototype.fitBounds=function (bounds){ this.getRawMapInstance().fitBounds(bounds); }; gmpGoogleMap.prototype.addMarker=function(params){ params.clusterClass='cluster'; var newMarker=new gmpGoogleMarker(this, params); this._markers.push(newMarker); return newMarker; }; gmpGoogleMap.prototype.addShape=function(params){ var newShape=new gmpGoogleShape(this, params); this._shapes.push(newShape); return newShape; }; gmpGoogleMap.prototype.addHeatmap=function(params){ var heatmap=new gmpGoogleHeatmap(this, params); this._heatmap.push(heatmap); return heatmap; }; gmpGoogleMap.prototype.getMarkerById=function(id){ if(this._markers&&this._markers.length){ for(var i in this._markers){ if(this._markers[i].getId&&this._markers[i].getId()==id) return this._markers[ i ]; }} return false; }; gmpGoogleMap.prototype.getShapeById=function(id){ if(this._shapes&&this._shapes.length){ for(var i in this._shapes){ if(this._shapes[ i ].getId()==id) return this._shapes[ i ]; }} return false; }; gmpGoogleMap.prototype.getHeatmap=function(){ if(this._heatmap&&this._heatmap.length){ return this._heatmap[0]; } return false; }; gmpGoogleMap.prototype.removeMarker=function(id){ var marker=this.getMarkerById(id); if(marker){ marker.removeFromMap(); }}; gmpGoogleMap.prototype.removeShape=function(id){ var shape=this.getShapeById(id); if(shape){ shape.removeFromMap(); }}; gmpGoogleMap.prototype.getAllMarkers=function(){ return this._markers; }; gmpGoogleMap.prototype.getAllShapes=function(){ return this._shapes; }; gmpGoogleMap.prototype.getAllRawMarkers=function(){ var res=[]; if(this._markers&&this._markers.length){ for(var i=0; i < this._markers.length; i++){ res.push(this._markers[i].getRawMarkerInstance()); }} return res; }; gmpGoogleMap.prototype.setMarkersParams=function(markers){ if(this._markers&&this._markers.length){ for(var i=0; i < this._markers.length; i++){ for(var j=0; j < markers.length; j++){ if(this._markers[i].getId()==markers[j].id){ this._markers[i].setMarkerParams(markers[j]); break; }} }} }; gmpGoogleMap.prototype.get=function(key){ return this.getRawMapInstance().get(key); }; gmpGoogleMap.prototype.set=function(key, value){ this.getRawMapInstance().set(key, value); return this; }; gmpGoogleMap.prototype.clearMarkers=function(){ if(this._markers&&this._markers.length){ for(var i=0; i < this._markers.length; i++){ this._markers[i].setMap(null); } this._markers=[]; }}; gmpGoogleMap.prototype.clearMarkersByParam=function(param){ if(this._markers&&this._markers.length){ for(var i=0; i < this._markers.length; i++){ if(this._markers[i].getMarkerParam(param)){ this._markers[i].setMap(null); this._markers.splice(i, 1); this.clearMarkersByParam(param); break; }} }}; gmpGoogleMap.prototype.clearShapes=function(){ if(this._shapes&&this._shapes.length){ for(var i=0; i < this._shapes.length; i++){ this._shapes[i].setMap(null); } this._shapes=[]; }}; gmpGoogleMap.prototype.getViewId=function(){ return this._mapParams.view_id; }; gmpGoogleMap.prototype.getViewHtmlId=function(){ return this._mapParams.view_html_id; }; gmpGoogleMap.prototype.getId=function(){ return this._mapParams.id; }; gmpGoogleMap.prototype.refresh=function(){ return google.maps.event.trigger(this.getRawMapInstance(), 'resize'); }; gmpGoogleMap.prototype.refreshWithCenter=(function(lat, lng, zoom){ var res=google.maps.event.trigger(this.getRawMapInstance(), 'resize'); if(zoom){ this.setZoom(zoom); }else{ this.setZoom(this.getZoom()); } if(lat&&lng){ this.setCenter(lat, lng); }else{ this.setCenter(this.getCenter().lat(), this.getCenter().lng()); } return res; }); gmpGoogleMap.prototype.fullRefresh=function(){ this.refresh(); this.checkMarkersParams(this._markers, false); this.setCenter(this._mapParams.center); }; gmpGoogleMap.prototype.checkMarkersParams=function(markers, needToShow){ if(markers&&markers.length){ for (var i=0; i < markers.length; i++){ var markerParams=markers[i].getMarkerParam('params') , showDescription=parseInt(markerParams.show_description); if(showDescription||needToShow){ markers[i].showInfoWnd(true, showDescription); }} }}; gmpGoogleMap.prototype.resizeMapByHeight=function(e, elem, withoutAfter){ if(!GMP_DATA.isAdmin&&parseInt(this.getParam('adapt_map_to_screen_height'))&&this.getRawMapInstance().map_display_mode!='popup'){ var viewId=this.getParam('view_id') , selectors=this.getParam('selectors') , windowObj=jQuery(window) , mapContainer=jQuery('#gmpMapDetailsContainer_' + viewId) , mapContainerWrap=jQuery('#mapConElem_' + viewId) , height; withoutAfter=withoutAfter ? withoutAfter:(mapContainerWrap.data('rmh-without-after') ? mapContainerWrap.data('rmh-without-after'):false); elem=elem ? elem:(mapContainerWrap.data('rmh-additional-elem') ? jQuery(mapContainerWrap.data('rmh-additional-elem')):null); if(!selectors||(!selectors.content_before&&!selectors.content_after)){ var mapContainerOffset=mapContainer.length ? mapContainer.offset():false , windowHeight=windowObj.height(); height=mapContainerOffset.top < windowHeight ? windowHeight - mapContainerOffset.top:windowHeight; }else{ var viewportData=this.getViewportData(0, withoutAfter) , proControlsCon=jQuery('#gmpMapProControlsCon_'+ viewId); height=viewportData.height; mapContainer.parents('.gmp_map_opts:first').css({ 'position': 'fixed' , 'top': viewportData.contentBeforeHeight , 'left': '0' , 'width': windowObj.width() , 'height': height , 'z-index': 1 }); if(proControlsCon.find('.gmpMarkersListCollapseShell').length){ mapContainer.parents('.gmp_map_opts:first').css({ 'overflow-x': 'hidden' , 'overflow-y': 'auto' }); } jQuery(selectors.content_before).css({ 'z-index': 2 }); if(!withoutAfter){ jQuery(selectors.content_after).css({ 'position': 'fixed' , 'bottom': '0' , 'left': '0' , 'width': windowObj.width() , 'z-index': 1 }); } if(elem&&elem.length){ height -=elem.outerHeight(true); }} jQuery('#gmpMapDetailsContainer_' + viewId + ', #' + this.getParam('view_html_id')).each(function (){ jQuery(this).height(height); }); this.refresh(); }}; gmpGoogleMap.prototype.getViewportData=function(additionalHeight, withoutAfter){ withoutAfter=withoutAfter ? withoutAfter:false; additionalHeight=additionalHeight ? additionalHeight:0; var selectors=this.getParam('selectors') , adminBar=jQuery('#wpadminbar') , viewportData={ height: jQuery(window).height(), contentBeforeHeight: 0, contentAfterHeight: 0 } , i; if(typeof selectors!=='undefined'&&selectors!=null){ var contentBefore=typeof selectors.content_before!=='undefined' ? jQuery(selectors.content_before):0 , contentAfter=typeof selectors.content_after!=='undefined' ? jQuery(selectors.content_after):0; if(adminBar.length){ viewportData.contentBeforeHeight +=adminBar.outerHeight(true); } if(contentBefore.length){ for(i=0; i < contentBefore.length; i++){ viewportData.contentBeforeHeight +=jQuery(contentBefore[i]).outerHeight(true); }} if(contentAfter.length&&!withoutAfter){ for(i=0; i < contentAfter.length; i++){ viewportData.contentAfterHeight +=jQuery(contentAfter[i]).outerHeight(true); }} } viewportData.height=viewportData.height - viewportData.contentBeforeHeight - viewportData.contentAfterHeight - additionalHeight; return viewportData; }; gmpGoogleMap.prototype.applyZoomType=function(){ if(!GMP_DATA.isAdmin&&this.getParam('zoom_type')=='fit_bounds'){ var eventHandle=google.maps.event.addListenerOnce(this.getRawMapInstance(), 'tilesloaded', jQuery.proxy(this._getBoundsHandler, this)); this._addEventListenerHandle('tilesloaded', 'fitBounds', eventHandle); }}; gmpGoogleMap.prototype.applyZoomTypeAdmin=function(){ if(GMP_DATA.isAdmin&&this.getParam('zoom_type')=='fit_bounds'){ this._getBoundsHandler(); }}; gmpGoogleMap.prototype._getBoundsHandler=function(){ var bounds=new google.maps.LatLngBounds(); bounds=this._getMapMarkersBounds(bounds); this._setMapBounds(bounds); }; gmpGoogleMap.prototype._getMapMarkersBounds=function(bounds){ var markers=this.getAllMarkers(); for (var i=0; i < markers.length; i++){ bounds.extend(markers[i].getPosition()); } return bounds; }; gmpGoogleMap.prototype._setMapBounds=function(bounds){ if(!bounds.getNorthEast().equals(bounds.getSouthWest())){ this.fitBounds(bounds); }}; var g_gmpGeocoder=null; jQuery.fn.mapSearchAutocompleateGmp=function(params){ params=params||{}; jQuery(this).keyup(function(event){ if(toeInArrayGmp(event.keyCode, [9, 13, 20, 35, 36, 37, 38, 39, 40])) return; var searchData=jQuery.trim(jQuery(this).val()); if(searchData&&searchData!=''){ if(typeof(params.msgEl)==='string'){ params.msgEl=jQuery(params.msgEl); } params.msgEl.showLoaderGmp(); var self=this; jQuery(this).autocomplete(jQuery.extend({}, params.autocompleteParams, { source: function(request, response){ var autocomleateData=typeof(params.additionalData)!='undefined' ? gmpAutocomleateData(params.additionalData, request.term):[] , geocoder=gmpGetGeocoder() , geocoderData={ 'address': searchData }; if(typeof(params.geocoderParams)!='undefined'&¶ms.geocoderParams){ geocoderData=jQuery.extend({}, geocoderData, params.geocoderParams) } geocoder.geocode(geocoderData, function(results, status){ params.msgEl.html(''); if(status==google.maps.GeocoderStatus.OK&&results.length){ for(var i=0; i < results.length; i++){ autocomleateData.push({ label: results[i].formatted_address , lat: results[i].geometry.location.lat() , lng: results[i].geometry.location.lng() , category: toeLangGmp('Plases') }); } response(autocomleateData); }else{ if(autocomleateData){ response(autocomleateData); }else{ var notFoundMsg=toeLangGmp('Nothing was found'); if(jQuery(self).parent().find('.ui-helper-hidden-accessible').length){ jQuery(self).parent().find('.ui-helper-hidden-accessible').html(notFoundMsg); }else{ params.msgEl.html(notFoundMsg); }} }}); } , select: function(event, ui){ if(params.onSelect){ params.onSelect(ui.item, event, ui); }} })); jQuery(this).autocomplete('search'); }}); }; function gmpAutocomleateData(data, needle){ var autocomleateData=[]; for(var i=0; i < data.length; i++){ for(var j=0; j < data[i].length; j++){ if(data[i][j]){ var label=data[i][j].label.toString().toLowerCase() , desc=data[i][j].marker_desc!='undefined' ? data[i][j].marker_desc:'' , term=needle.toLowerCase(); if(label.indexOf(term)!==-1||(desc&&desc.indexOf(term)!==-1)){ autocomleateData.push(data[i][j]); }} }} return autocomleateData; } function gmpGetGeocoder(){ if(!g_gmpGeocoder){ g_gmpGeocoder=new google.maps.Geocoder(); } return g_gmpGeocoder; } function changeInfoWndType(map){ var infowndContent=jQuery('#'+ map._elementId.id).find('.gm-style-iw') , type=map.getParam('marker_infownd_type') , hideInfoWndBtn=parseInt(map.getParam('marker_infownd_hide_close_btn')); switch(type){ case '': if(infowndContent&&infowndContent.length){ infowndContent.each(function(){ var $this=jQuery(this) , wndBody=$this.prev().children().last() , wndBodyShadow=$this.prev().children(':nth-child(2)') , wndTail=$this.prev().children(':nth-child(3)') , wndTailShadow=$this.prev().children().first(); $this.css({ 'border-radius': '0px' }); }); } break; case 'rounded_edges': if(infowndContent&&infowndContent.length){ infowndContent.each(function(){ var $this=jQuery(this) , wndBody=$this.prev().children().last() , wndBodyShadow=$this.prev().children(':nth-child(2)') , wndTail=$this.prev().children(':nth-child(3)') , wndTailShadow=$this.prev().children().first(); if(hideInfoWndBtn!==0){ $this.find(".gm-ui-hover-effect").hide(); } $this.find('.gmpInfoWindowtitle').css({ 'padding': '0' , 'left': '0' }); wndBody.css({ 'border-radius': '10px' }); wndBodyShadow.css({ 'background-color': 'transparent', '-moz-box-shadow': 'none', '-webkit-box-shadow': 'none', 'box-shadow': 'none' }); wndTail.children().each(function(index){ var $this=jQuery(this) , degrees = !index ? 'skewX(50.6deg)':'skewX(-50.6deg)' , left = !index ? '-2px':'0'; $this.css({ 'height': '15px' }); $this.children().css({ 'width': '20px' , 'left': left , 'transform': degrees , '-moz-box-shadow': 'none' , '-webkit-box-shadow': 'none' , 'box-shadow': 'none' }); }); wndTailShadow.css({ 'border-right': 'none' , 'border-left': 'none' , 'border-top': 'none' , 'left': '38px' , 'top': '74px' }); }); } break; default: break; }} function changeInfoWndBgColor(map){ g_gmpMarkerBgColorTimeoutSet=false; var color=map.getParam('marker_infownd_bg_color'); var infowndContent=jQuery('#'+ map._elementId.id).find('.gm-style-iw'), styleId='gmpInfoWindowStyle'; if(infowndContent&&infowndContent.length){ infowndContent.each(function(){ var wndBody=jQuery(this).prev().children().last() , wndTail=jQuery(this).prev().children(':nth-child(3)').children().last(); infowndContent.css('background-color', color); infowndContent.prev().children().last().css('background-color', color); infowndContent.children().css('background-color', color); var styleTag=jQuery('#'+styleId), styles='.gm-style-iw-t::after { background:'+color+' !important; }'; styles +='.gm-style .gm-style-iw-d::-webkit-scrollbar-track, .gm-style .gm-style-iw-d::-webkit-scrollbar-track-piece { background: '+color+' !important; }'; if(styleTag.length){ styleTag.html(styles); }else{ jQuery('').attr('id', styleId).appendTo('head'); }}); }} window.gmpGoogleMap=gmpGoogleMap;